//
//  RQContentViewController.swift
//  RuiQue-Swift
//
//  Created by xiute on 2018/10/31.
//  Copyright © 2018 cuijin. All rights reserved.
//

import UIKit
import RQConfig
import MJRefresh

class RQContentViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    public weak var context: RQViewModel?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(self.tableView)
    }
    
    func refresh() -> Void {
        self.context?.getNetData()
    }

    //MARK: tabelview delegate and datasource
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return (self.datasource?.count)!
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell: RQContentTableViewCell = tableView.dequeueReusableCell(withIdentifier: "RQContentTableViewCell", for: indexPath) as! RQContentTableViewCell
        cell.config(data: self.datasource![indexPath.row])
        return cell
    }

    
    
    
    //MARK: properties
    var _datasource: Array<RQModel>?
    lazy var tableView: UITableView = {
        let tableView = UITableView(frame: CGRect.init(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight - 64 - 44))
        tableView.delegate = self
        tableView.dataSource = self
        //这里就不定义常量了
        tableView.register(UINib.init(nibName: "RQContentTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "RQContentTableViewCell")
        tableView.mj_header = MJRefreshNormalHeader(refreshingBlock: {
            self.refresh()
        })
        return tableView
    }()
    
    var datasource: Array<RQModel>? {
        get {
            
            return _datasource
        }
        
        set {
            _datasource = newValue
            self.tableView.mj_header.endRefreshing()
            self.tableView.reloadData()
        }
    }
    
    

}
